GEODE-8856: Persist gateway-sender startup-action #7859
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New startup-action parameter with values "stop", "pause" and "start" is now persisted
during the runtime when following commands are issued:
The startup-action parameter is persisted within cluster configuration when above gfsh
commands are executed successfully on at least one of the servers. Parameter is
not updated and persisted when commands are executed per member as
cluster configuration is not persisted in that case.
New startup-action parameter will now inter-work with manual-start in a following way:
will require manual start (same as before).
gateway sender will be started automatically (same as before).
then gateway-sender will try to reach that state regardless of manual-start
parameter value.
The manual-start is also improved in order to fully comply to above requirement to
start gateway sender in stopped state.
Current problem with manual-start parameter:
Currently, when manual-start is configured to be "true", then colocated persistent
parallel gateway sender queue region and buckets are not recovered after server
is restarted. Because of that the main persistent region that is colocated with
gateway sender queue region cannot reach online status.
Solution to manual-start problem implemented in this commit:
When manual-start parameter is "true" or gateway sender startup-action is "stop", then
persistent parallel gateway-sender queues will now be recovered (if needed) from
persistent storage during startup of the server. Queues will be recovered by using the
existing mechanism that is used when gateway sender is automatically recovered
(manual-start==false) after server is restarted. In this case parallel gateway sender
queue persistent region and buckets are recovered (if needed) right after the main
persistent region and buckets are recovered.
Additionally in above case, parallel gateway sender will now reach the same state
that it has when first started and then stopped by using gfsh command. In that state
parallel gateway sender queue buckets remain on the servers, but dispatcher threads are
stopped and non of the events are stored in queues.
For all changes:
Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?
Has your PR been rebased against the latest commit within the target branch (typically
develop
)?Is your initial contribution a single, squashed commit?
Does
gradlew build
run cleanly?Have you written or updated unit tests to verify your changes?
If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?